<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <meta name="theme-color" content="#3367D6"/>
  <link rel="apple-touch-icon" href="/icons-192.png">
  <link rel="manifest" href="/manifest.json">
  
  <meta name="generator" content="Hexo 6.3.0">

  

  

  
    <meta name="author" content="QAQ">
  

  

  

  <title>java调用btw | QAQ</title>

  

  
    <link rel="shortcut icon" href="/blog/favicon.ico">
  

  <!--mathjax latex数学公式显示支持-->
  
  

  
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/typeface-source-code-pro@1.1.13/index.min.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.7.0/build/styles/monokai.min.css">
  

  

  
<link rel="stylesheet" href="/blog/css/style.css">

</head>
<body>
  <div class="root-container">
    
<!-- header container -->
<header class="header-container post">
  
    <div class="post-image" style="background-image: url(https://qiniu.sukoshi.xyz/src/images/68686407_p0.jpg)"></div>
  

  <!-- navbar -->
<nav class="navbar">
  <div class="navbar-content">
    <!-- logo -->
    <div class="navbar-logo">
      <a href="/blog/">
        
          QAQ
        
      </a>
    </div>
    <!-- link -->
    <div class="navbar-link">
      <div class="navbar-btn">
        <div></div>
        <div></div>
        <div></div>
      </div>
      <ul class="navbar-list">
        
      </ul>
    </div>
  </div>
</nav>

  
  

  
  

  
  

  
  

  
  
    <div class="header-content">
      <div class="post-text layout-block">
        <div class="layout-margin">
          <h1 class="title-wrap">java调用btw</h1>
          <h2 class="title-sub-wrap">
            <strong>QAQ</strong>
            <span>发布于</span>
            <time  class="article-date" datetime="2023-09-24T08:29:47.000Z" itemprop="datePublished">2023-09-24</time>
          </h2>
          
            <h2 class="last-time">
              <span>最后更新于</span>
              <time  class="article-updated" datetime="2024-04-09T01:08:52.184Z" itemprop="dateUpdated">2024-04-09</time>
            </h2>
          
          
          <ul class="wrap-list dark">
  
</ul>
          <ul class="wrap-list dark">
  
    <li><a href="/blog/tags/java/">🏷️ java</a></li>
  
</ul>
        </div>
      </div>
    </div>
  

  
  
  
</header>

    <!-- 文章 -->

<!-- 文章内容 -->
<div class="body-container">
  <article class="content-container layout-block post-container">
    <div class="article-info">
      
      
      
      
      <section class="article-entry markdown-body layout-margin content-padding--large soft-size--large soft-style--box">
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="抱歉，这个密码看着不太对，请再试试。" data-whm="抱歉，这个文章不能被纠正，不过您还是能看看解密后的内容。">
  <script id="hbeData" type="hbeData" data-hmacdigest="a776fb175b664bb1c1cf111a52ca77160e44ae339e092f1a51afe8220eb3881b">f5d7027a76d40f8b4fe5a79716a716fbbd2e7a9d87fa4ffe1b23e27c10841cf586f614546f9e1355cbe2bba1d6def4d8c71fabb3c2b513052e140ab463b3e69cc28b547b47b3eb3277a3236159a70c10b9b2a0afc3198d15244c51b5def0fce21606ec52df321ff79391b677d060bbd7876fa6cf31757b915f5220bae5683de204d25393b8011bf29a6526bae9aa549d2bdea2e65a94d40c67c7010e6e7c2e4e764c5004144fd165f358dedd90c5fabc029a3c764b69b13038174310c7cd7a40905b78a9ae5f79319004e58fe1ef5ca744eb4af2b844a0bc90c10f47f8715feb6a3b51ffb446c6727aef6c561606854bb280565bdea406c62672a15c22892484fcfbd43481c3f8c05bf708745866b4bf80ca6524bf2be548ad1c8c1de238379d2c575d3a494cf9568e53a80e6091651183e66c6ad2d34aee446f064a5ed64068ddb5274f9d752a98797127d80a9e2b6c23bb091c858ec242061ffccb81452070ad1c33f73cdfe8423c2db49d2034422471964666afa52ba32857f885e4845620b3c5d82c3d018dd698e0cd0da659e73166dfa0dfc20aeee406475eeb2c8322ef7b6cb9ec0ad7cc7588a6e172a2d7dec48639006ea85072f107a763f6a55bc94bfc3b6870a482f5800a7d912b3ad3d3c9b425b05374fbdbe523558d883a80e53a4f2561ff0f437131099282ef5f942bb15d841f09a23569fd7fe090de9df32c72105648fa8902d491a184de1034070302faf2d73b2faa402bf6047d5baa11f67c743966e393e298186ff728d7b0225e9351d4d129ad476fd6994143075174c64e2f428130bccd9163660d88ff80a8410baed19532743e7c6fd605fcb2913ba924b358cf48115711a669ac05ed59b71500e2755a0aeddc119c14f7b120b1c2a17be8e10c49c7f74b753789ccd96f2c55efc55959a49a9d31137dae9db43acfa1a2cc23e1a553143ecd58e63aa6c4904269c9d964a049479cf9f12a2dd4f41961e9f2e8dc6e904b06f064f4f82911021776158b8e2dac37f726138c1b8c6555a61f17531cfe652f8a7759dd50ade452c4ebc0a2e30ab34daaafad5ae9a0558ff2456c2e2994cf4057faf14ad18694f27f3de5f3caa8b754cbb368321c9ef472c5f418da5a543319f08caf6af2309cc88f741a08a0fd1515f930b416c15afd38b89540a6770bea30ddf943c86d65692b922fd6e5e1347574cdcd0a8dff31c8bce1f90283b353bbc8b97645f6ed6cf6a96f543c09de28d6215cd99de5e4715de43f362c957061b653e757f7da647b489a26d082dd413c1edb580ae86131f8834fc576288a6b599df7dd48c2ac8ecdbf68f3ac60bd291f4492190708bc56c97eb3edf3d085d4fe8bcbae196871875d52a11dd6aeaa85114393a9c5abf32a1b041d143bc748426c7931e338fdf3626353cfbc096b9fb4b4757ae08a436821ea0fde0932c384a8916cbb033f4dd552a619f546a77698082e445caa545b4ed826cabddd2666062ec3cf185cbdd52e4e40360cfc3a894ee9d8a788ea1e0780166cd1b48a9f4188d6b7bc060217f26f9df95bdac704d263dbb6920d971341803f487612c52e9b502f6453935694ed8862ec8a26350784f3de47ebf46e8ddadc343cca2611836c1f41690c70295c737b743b4b1f88f59edf9fd81b96a78e3ec98ded2e130ed53c39e6fa9fba94b60cf86764f8b1236ba3d1acd4e7fa580e4ec8e1c744b1a884dfc6be9eb172d93f8d009bede34fa88c3b618aa2c59d6a6c5cfd5683cf8841ac8f90b49b3cd1ac799a8403be9fa422e5f293fa0ed618254b59c89ebd4dabca79cb2a5f08c624272545b6f70103793bceca22cd073cde69d963f3000d5e71d90e43e63ddff97fb353fcb2134465846c809f523358eb4bddca9ce09c3b8f16574bc95958a8d612c798e2ac89111bdd86680e2778d5c0527b33a8340b23f77e85db9874c1f60d631ce5c4d3439ab15bdf4856f4d0e5af7bf22869a06561996d4decb33d6180e5c4c54020949bc90572db3da7f6c7bae393ba3628304b2d8c14e1e44b23778f1d492c97929f966b5ed32888b7aab55e3fdc1c87579266536079fbcbdd9813b0356242f21951f03c490182445257acdbf8bb4df540d7030623d0222c3b9b8ea2c82b240a8689283bec1de0b40f7b5b5eb58360129b87e416dc2abf5303cc00ff0393c0ad0fff3008b4f8ec8d7d2d4a368fa18cd44a3ad336fe731e86939743ce90f2f285eeb2a1d966a38aa50ead8fccc706cb765ddf24affa5ee300055c3c7f05cc08a4f07696a712b2f5162bf467f9a7d5f56a6841ada6a37dcfa5f855be8dc760037fa8840075bafb1790244665ee4fa4fae2495304064466fa51fddc478b61141818cb074ddbe81ff714e431f3521307aa13f4701df2788134e24ffcdc7c258a462259fe318aaa4ff1bf86b106d1dbaae8b072ebf49b30fbe3b7dc1f2697eafe0328f324c51f55bbfbe2ae66f15038fb1ceb3d7680c2dd060dd5d093cdb6e22ccdc781e5059511188202f69cdad723183888483ffe51a4b2d6c3a3221c22916553cdbfd4d2ee90e08f97816236d5d809c1affaa39dd3f44a5ff43f897800a09fdeec1c313bb34b0c0499e2977c44aa0119b0eef360353b438aa7187fc2da8ed18cce41a35e2ea274d36e374b1570de30d6495b9ba04c615bb9c87b3db2fe2cdccf47204cff7d96d81742196397094e2a0abb82acbc3f2374d14688007ea614c5d28ea7a89280c815f1bca18f828b0855a925e66bfa4742e5b6e73085c13b1bfa607e83b99f969f6ae9bc537256f57209f0fc9ff4199f8c442b5d79d7236385490fe2c9ce95d18d93b720a5c50764393cedd66575abd1078f9dfa5c072a28de4d1da193f9cbf006ca7fc0de0243d3b0e0be0f9c286f5002cf5edb2a710c444e1dfbcd36b25adde142c46b57df2e38cfe96801f8e189f6f2f95d96aa71dadc56ab1450d83c53e63d2e66bcc664beecee031a66191359a3c37cc2c607d5be50d22e64ec6a31bde91cd15b16acb9d6798ea1393363afe6a81dfc8e6dfb8164910c777c358e6a2022257c9401b71d4b0446caba263ce539d723ae7de6bf913b14e5768ae28883e24b8c1f298056440eb7b71153bbda3b47d7bf4c39cad9cce41a4d697314613fd63bbdb46d4869c9373afc53210da958fb9342bcc504e42b1647fa13a677f464067d8f06f1c02196afec3ab6b06bbbba23118b06d3a0c5ef49cb35b2ad9bfdd77f2a6e9f96526a54f7e039fe9e1c6653379afdc7ee716f36457b45ee1b341273e878c4937b3e00b3e5551a3c17b5cc4cdf717376f73c956aac670c8c958a58f433249d3e94659551baa9422868038451bef90119990736d8c023aed60c1c4b4d00e5ff4e0e4e7e9ff1b862854f7b12367e0cff175f8312a87fb5c7b35dda15571bb589728f717f3e9e589d7cd2d8efb087e95b57f58bef93587b2c935bf1f9ccafa3c9d4a9a73fee1472b411be25f8436d79449ba8bcaa78a088522db89db8d5beabf214b9f94ac7ce5ca80c596044a589e71c7a65c1bc6f4ed0508f67f0afe75b34b77b63362a34c777e7f52f29378c374f3270b6143120b6d3a8368d19818db42285ece972d981934e8f5a2d2a269f5dbbcd57d2953abc1ebe9d582a9ce08e7765e7f34a15da26d62f10b65661b1b59101727b9ded9ec95c528caf79e5b3366be5ab56dcb1d53d0e0ed54e26a9cc310e95538cda695dec137434413e3dc01cf948ba67e3e52a950575429547d6666039888fc524f9236d4ac9cde22cbbe553994490bf7b661b4d7e0c65d257c8c5efab9af25d13a05b70907b163ab77596d30c7e9d98e1ffbc2f4e9c933dfb3235689f85e360bda407cb5b4dc8ef7136607c3a6383ccc6e95280f1dd83269d8a9900b8553818505986c03ba15d10f0551931effc425f6202bd2d48a108fefbef62eea68893e9e3261b4bdbe0580c551c871f4cd1bf1d91a62b2fd6ff65f478a6e24a4077e2ff890f54e97b46a5e4e486e59d1d6d729ab1cf524095cb2c2f88074427847c29159283bf38692262a7cad66af41e9b7f5783dbae8f24898716a8716c7e8fb2630fac08cf9c94b5e07324314018e327306ba5c9004044549bb06ba4fa8ec2f758e6fe00cd8b244dbb55d20b7b9c94091e11fb0eca2531b6171a43ac69aedb739491f442a3b856ce45ce88d6780470eedc1d8445d8af66665dab7bcab14694eae886aa878e1eee0982a76bc7f31fc4e21905bf51384ac7c5813c4c1151c9fb35fe0bc0a5d2d2f058ea75b605ae1c4f7aa84fd00c46accc837ae415a46f678374772cee2238961b4e849c1501b38fd60b2914308f8fd0bed74e354d0a79c183218107b1e53d915973247b6848dc3cb5d7eeb7472bc95cadfdbc87f2f05cccd45b0191e941497d5481b3b22054e0cbb6925f0f8665e5ea91f3631ab0f3f5e4686ae8d8b790c7bbc5d68241e7212ebb409a54396fbcb4fa0c32d97abf4df8f4ffd5c0771d79c6b103cd4ad2374147581cd5bbff8518ffdd80d0f0beebc828aee67293faf9d806ecd6a4a4fce675d92dfa494448d7240563b4108e934cee585617da7779dc62c4f64dca1c9a8d4778dcc4a002a311dad9484a176c50553af81d054df826e921b46fc8c9cf3316f2e658405bec186a6ee14ed0d6d63b0a42a497886c558db8a304cbc4a0d3313acc3c8b85a48b9d297fac73b345316440398ea179d1e104282e62bc8f93b349ba872b001431b042f4e3b9b1770a0e806c23e7f79218722f3b41f9894714730c7fb8b915157fd7e07085a7e8998aae2d0a400809f713052b58e2b3f2fe54fff33ab53751a55dc8305f22c75ab7437ce4be34a3465902f72542eb17be23a764c9cdb32f39d84d3c8637cc482a92dd83479ef32146b53e1e8378cbca08961bcce23b151ad5325dd1f419b75944780310e426158741e1daf5f30c43a8855ee9c72723768457515ef7dbe90f9ca1b920d88e87a02f17c511146b96956d871a93c5999d7db9af8b27ad3159dea6f0b8871954e4687a71ebcc5d74c480cd1eb77c64860ec566ad0221cb612649972aff4b4120815c9c875dc65b49c6b0c49c15a7557d0c608536ee682e7332f23d13ba13bc60083e01a623af3d45211881ac9e0d6c7f913738eadd0677792e313611a4a4deaf05062ecdc190d4b23f32bc6b0ac1e2bb056133ed5471abc2db5584af1727d49ea09410cb961e0561c165139b14ec107fadd9dccc81f390ef4907d54b0bcef8b25484d98e06a22183c90f953cf503077948d40e93fa7593304313a61921b9d4d997dd9631ed27c3b55972db1997edb3d72d0f65bce76da002f07146bede7c020d222425fed6d85a424b0bad14bdd04814c80a8267bb5fe46ecbcae0ee32cb741fb987ebcde9cf163651c5838ecdaa21decf569d4cf2675d1e4827215e55b9e1d47b4a2f5eea146da5642111020985fa16da0671d8a7f771cfab4822004895d49ca1d0439870144cc3c31acea523feb39842afb75f216872fbb410c737e3ed829be6b5398372cfe31b01162e5ed79de4abe6026753f806bdfb32850212246de7c726cc2910e473e2ca9c7e2592f841863876daf5d04c2fe050c8492285329139396276cf7c8556a1a0a0c535f4ac7c954253ad2e14ff6d37f01bc2aee7ca6dcfb7c820613533b88bec328c2f93421c6631279e6ca1df7372f41df31ecc7f2f52d0a4f43fc3f0bfca4950f77f3ca4371d63ce8c4fff5f859632385b4103e5491eef19082711b52dceee9124326e626747f990f5b564d9162808582edecdcfd1f70aebc9939582e0c1f77d087cd4feb200e6ee2b4f48deffca7306a6f683c748c3ea6a1621f6f21743bace128826ccad2c433687ec9324a5653e79e1c59fece23c064157f8218027e3d72677ef3f1dd3004eb0ec0ddda1845fdf4332e48ea753e16fd2d738e7c7081cef7df44d2aa2041592468b8d1681a0fc68a59c9250fa29e68457019f5511cb59e85736463898d91ebaacbbc1662ed710d52e8864f1c7fa50be790afcda4bdd282a824ab3ec77005d7e331a6a343f43e1e6c1f93f1f7022495e25a65109bdf8be8e26d049e97d599e63932b45526c537f34a93c4c88a7acc4b4089abfc18855c086dd3676f51a558089db3e2a0370f25a7cc79f6358e213abf8ceecbc45c1964c4a1fe3f369d5029a2e68f8e6b9f808ba5e41aa1ef12cea4aed2e3ff161537308b45310131743f046b3d0de38a67e14db85510df91f586915f4f3433654ba02fb370fb1b3757c5aca542f7320f33ed84cf4169f6336d5fa111871bb2c1e5c55b9fea7d3a29c09a03b886f9bc133766946f750a48088caf82c8407b1c79069ce8585ce4f3ef8a56a4c3ec98a157c7878a1699c331f0f8223e2e447affd150ca2c27e39691e6a69d25c1173ff8b27634a7ec67ca1631efec98421e7c7678801c86bce1b843d0a756f83b636510254e8ac3f873de31536b1021f23e9e1b58770c9439325607bd55c366250ad6e031eae463f5004981fa8da2be963b0ed1b1001a9c2da762428c273e7c5d5d8608ef35d828b943a9b3ab847ff2260a7703bd86836aef27177463e884fb79686aa485ac5a392c05949770d1b49b5fdb222d84f69464e77f4e078c6feebe2dfe21ea0da5f8794d6581b0a4d9991bba4acab31d13579b92bad04c14dd0d8db41f6b62c8a4b3b98c716b55071df0d6642f9a9669850e202130257ac173c2669ed58afb8a862de79a4b428b8d9874dd7d682eb98f7e3ed6146a5d4898dd81a3e03a1e494d23924bf3f54713fb121d5161aef20e2f3cd9bef4f020449b1fc20bc79482f3276dbf442618881ebbde7e36852354366f3d4c012beb71765ba81069146b240e39e5236c40da0eb0f043f49f072943b2d642cca6027463023a2a51cdc8f93a498afb4613604ac1a2d2c561a8a2389bcfa5a698c733994dab705586fb5859179ea5f473e9cfec4b13f24e484863d106dbab0968211dc5a74fa3a271e65ff5e57fb8e5078e9adb2a83d3151e6528d872e8e2a9b52ea740dc61f12db9b00860fe52ded7641262d18eda345af344f864c982448e3adce63947eca7944ed15231a8501b6c932b59fb3f5f377f24782d585f188074734817b3d2f3600f419258830e91c1ecf9fda013547a53d01c5244e27b77a5138cda9729e093974b93f0f5bc8fd4db056548228054dc40def9ef9b23277ec5de6b5d752f2b8a238f1cb695a65561e0ab770969b3bd1194d6a068101415720d11f24017140dafc3e6b26fde1307aa50ef85de2e856c0ee60cb65916ae2a3996f7079603049ee98093efedaa7b220ae2b4f76a02f2f1358928db379de43090abc93a95c1fae155dd0cafa74347b902e6c31467583d214bdc3cf4bb73b0568d991b53a15d088ff2f4ac9018191b43098bf84024f49284b9f2ce28d39813b97f0382f1dadf10e374ee42301e7097f69d8ae7b5612b9525d1087fcc6fae011fd0591979e79a152bf594b39302ce857625aa10be0cd46b14350ee7614ecc057c363ae90c136c305e8197d9364f138413cdf6771947b836c408b7fb6875078e2ce8c397ffa17c5d02da32e7793943a84d83b2b8edfb5c2baf3b541db10b9a82e73ada602995032d6bf1634c817216c662c8841b4a8c2840bd97842688da8f2bc9c58b6a80a9463b74dfe345cff83b235092da45c6186255d8bb4c88b11aeed4a6321cdff47c308225a43014289316a5a5719212b0282c59ce8ed604a031995ad794a9eb71d2da44fb2aca0cb4db418843a6a346edc921e7827b231dadd50ce487ea71826a96e5e03078a2c17fd32a619c5de36d405b6c8c50b4db45b683e233e9fdaaa820a65469da36dd394d159682053661ecde1311430922d63d2526a01f969c9d9671ac8a619a1503d396ec2a672721eb9b378807d1775e404c4581cb1157386dbcea39c1c7c35634a3b76dc2c918c5f4be3546467450e85cb29e0741333f08c02a4c86a4740a06e56ffd3b607284aa9350613fa532dabbedd2dec6642089336c293e3372ae81b16a40edc8e2ca0fbb493217ac45eba464b51fdc8447b10f0b550842aaf5360c0c108890701663d0da040a36356dafe151597a97e3dcec9925147fa7014c84f3f2fc3433c92d821c6acae7719cc58ae62d0df847dadfd81d3b3c50d28ef63d666eecab6850d0c164cd7d4093c23bf117c7890228406bee33de7fa530114a9544b0c04f2a1c2c98c0e704e642ce6ee7ba5e5ceb861e580ba167b8166a8590b8ec8921cd56af4474209fd54d401fc92d8b29406b3bc5685d5966849db43d5b08ea8822d8351190f1950248c68a6bd48bcd2b1f9088cffc348859403b535df920219523acc0bf23f42ba5f54c7ff3d76e719b8842db81b33f36baacbf74b10160b748f6bb44e3bc7f6dc33bc14b36bdade95b7275bb23fa4b79d4b237864bfa939f32b6c6a7a8c3a99a9670b8584ee3b0de186a10442056040efcf7d4cc39f56a70bfdcee2561b74cc1c1976120c1609eb126cda98874a16bd19cd2d189667e5641e2d99aac0117bffc9cf321220d10b807eee98bb7f7ba8077dc1c2386cbadbd0d7fa72fc567e7851db27ce69659528b8101ba234f1422449c6fb212b591b5ea35a6232409b7ef6faacf37ac080d1f3b04945b243c2ee029cc6f24b854e38135f0192000e22403ca548dd8b371190f363d33c6a73fc1b72aa50056f054ba1c9f0d8c2afb75e85542b6642279b7b25b462465fe6012be29c46864f820c5645eb8bcfb9aa3fe2dd6c1f52a972b2c345d0c8551887449450c7c92f45f97ad5598281e6a4b71171ecf01bf2b99a31f0dc9683f2deba3992109e646a1a7f336e0d4844e3783e0b63f8e3ad43f6f74a8216acc3a99c29b7d3228df1df4fa7402c7fc488265f2528c78f0a5eaafaee8678d1b6d5299745f16db826da28305c9ddeb06bae43b990175e099e71135ed69463b67b9b5d10d9d42ba2cacf1ef8bc58eb9fe43fb14fa93d57353d4a4fc429ab595c91a14310de62e6d2a5ef178e4903cf5929cceb983085c760677466000e0bd628b72e969bc9e7c3380872da790a021b8eb4de313510433cb2d19203b756d99370603d3821c834bf815099914e6f1ef6a7f950c99bd7457e202b60428bf7bccffda44ef5b6d59225e3aff625db9a2662df56ae5ece9524db326c35d0874e3e32e87dd52a626deb43086d0b15b7ddeb7ff88d7d5c3a055b06e65904eed660496018058598f71707e68199752d03947728392628cb3df2fd2e7199173d3d568ce92c233343ef5d65355308d246c7503e5d0fa8411d55c2769374d8221705e236c2197a3bfea9405bddb60a9798e5b6428b17169d675a63b5bb0afb14a819fb5fc57123589db7487303df37d7326f4110a3cbfa03c8feac72349882d3544e1b22e2f475165ff147ca74f57b1b6eaf06c006103b41267a7ce12965d95cc63f380ccd270d7934ac9c8bc6bc12a0d955801fa2b06ae071f6a39cefc2e7772592d7919095d6677254bb7c774b2c1d085c418214f921bc7ff65e9898f37dc7788cf92cb151bf0041bf27080877e3911a8707d5df3024c79b1afa69302a57e489e7e56718ad3e2b9ed75dbe144cd75d6b47b22a1f335a7026ffee3adcf2efe1eb072d9fc375522fc893fb6aef8bcb2f60517103cd9472126f7c5579cde8a998097f14f0a82f81b4f918bba7b9a06d987f7e49871af791da923ac876b6e653ae6b6ba6afe056ebf1ec31e09b99917350a56abaac13a4f0542d99103acfb1a0c6db51f50c74d0661cfc75f8d6c937050df1ca3ec098f3cb15499c94c46d04e61107915dc7d214990b121cbe8e4c83e30a5e05b13b22dda60cd371ff162f81cbc97e120f01d2c1f01a782e6cab395ec2ea67907ded8341da2ee65d1d78fe04557100b8c057c95e0a2fed89e6bc8f178f013da4dac085f243b7f1edc543a87a53c1bce586e715b68557292d014aba838eb8ac189e5967353035706e95909b3c3e8017e62cc67f12f7379f73b22a34ad8898d2567fc2be4a6a0c19ba824364980dd2a998b9c26f60f73d7d72f4b39889d66dff7fbe279871a65df540d1509b930ec68edd67cd75629c4056f341f52256a2380715262fbde32d3cb55206bbe09525fad8da7dc48d7dd6c67929144788202373c8709184ea842c176c7bf69d0efa1c3e949ce452b7ed16a139fd03b5eeb351d7740577997ee405c76a762c150dce489cf95009b178e32cbd2b353e0c84997bbe6ac75ab7bf809ea75f7c444daa417d625ff8e162121f32d28064c276ff98a4e3fa4cf7676025313b5895122f048baf2a119fdd43be06c24cdd7635010475204053cbbe04306b2b1a910ae5a5a927312c5e43c719249d6b81ec2482c5c0091441a929e109a4c15152aa5ab7d7cb3f870498befa71d5d27638658cb8f80bb089997a920b95483118fddf1ad0e0d631fa08216940b202bdd8f9f0e07deb5470f4f5d6fd004652e6bf29c1b11fa38983a662ce5d332d9030d576623753a99c6ecff0ac040031655b9827b97f8523b3cd0b59511df589a64eaa9044fa6ae14be775d58cb397d95ed7500ffda34c15caad7ee9a80fc4ed87dc4451d522d2f2f70b2897c7c1829c3af78ea5760816c92a5fd0e6062f2541581caa31e3dd1ed297c489741dea781c07e1a3c34019d43f7e94d836bb5118b0f5784fac6f1d6923c1f94ea0087d8ec84feebe00ef6a832346fa0310bf3239c6f6ca095aed62f279ae13f9aec463ae68acd94d9eb1c488378fc5dd0cd84d105b1e9a9eedd2e49cfafb4b826c04840331f6b318bddac5891894b6db5d57bf5ec2abeee5a3f098e43e2681ef4e65dc1ec7912b8145a3c27ada17980925d1b6801a6c163e72dcdaa34f8abdf1e99cef1d9e048b1e21af668b96213abccfef2dc92e7707c14562d59ad9cbdb8c0c1e57ae0fcef8e2302b6d94e362e0787b7c3a737ca820489fc7d395f4ac7684d7823c7b69ca3b72b8bf05979f39b897e166b098d836d448613c444db5d88987a465c06e413dd352d0e16befe94638fae1c21b1e288c3494ffabaad5e7b33064fbf2326f26cb3454e57752dda47a2a30c9f6cfaec0438a2fc9dc5b3d94c37c055c456525e73a0f9176020067d98f79ff51c4916a343464934ffc1db12f2aa5507c4e4f44f1521fdf648d94347beadbfa437ecad0c5c444044a22c0d9c133cecb07c6da798ae76f494e24ef52ab9eab63c3b04b6179646546a7b099403fab615f7044569103b25f01b642a738164ecd03138df5e83aedb3d3a3255d82b1aac931957375035661353d2a2258f1b575c854c1f8fb93423c1f508ae8bfbb1c8abaf133067b75f956235af50d7f8c5df02be94d6324bc3143c1ba054675c57b45dc7b10f04680963f7785a9522b320f50067c326c8191c2da301ebb6388d0ed77377c6ef1727714b3afa25aea9c52e13f7f43facdc3b5ef88d7cc2e87b65e89804e66d479ad758b603b7481b86d4076ee261860abc693a22da95849d0d30bc46855df923ae50615cd1b3670617208671ffdf34edb1fb759727fd1edd6307c408903891473ea855892949f92680e9b7d81c7f0f45eae78946dc6f1791632ab6f56d5cb43cdd165b615852f902470792f8c122bdb85e32e15d6278467ee2ac70616d243e3f3856726d82850dd5e854f5e1ef7775485e2e7a2248ccb832fda59c574b6a988fbbfb3593a616d796aaca523e68b47bcbabae4b81760fb7fccfc31df2842b5bbd149644de4501594764be29d68b5398fca39af174beb121e7a7eb62a2a167a3eed03df186c7b005fbfd039ecd08b0b97f05ba2e90607e28a837a0616a503cd5339040945a4f0617bcd2900271dff67cb2155f8bd8d6141fe77a6d8746ea8408aae65669b6a0ba4e93ee61c4ecc0a60782e4457f416bb0e6a9c01912ee4645b7a531bc0969602a4776384083a98fd113ffd325f8833a718feeba51517186b8cf9656d78c823e237aa57222869eabe4f7dc6ff191c5fca4ebc5626615cbbc7fc023249e2cd2aecd3baa858a9fdbcdbcc2163a2e7bb5ee1ffc12293acafc4114ab3b80a15fe5a3f6cc3e0b8c8c494eab196e4619822c77e8f71ca5bee69b0fe0a9e4e4e34db062a43ed4de7d07a39bf4c6fdb1dbfaab4e02d6b31a58c1ec50456eede245c9ed3e64f6215c937324fbdd9a9c8b4983eaa2717875a5a71d5f77fc0c1a2674a64921803f6bc083a19afb402279305a8cf0e7cdc012e973ed80f584934eded891c77052467b6368e4b8b5bbda2c3bc1402da7077561db79a3c21760403c28245788f4c8e9ef0713f4f1b26a24635584a0877dab663d9673a4c17f4a0324016a7c096c8f32876d6bcc33cd07175f9958bc321aecb436a94dfe15502876b33cb24809bbb9fd1bb64ccef84b1f6a43ac20e2f70eb53a488d38ded2b959d4675609e9e8348c749cd98e4c49bf55e6f5e07b3f063788f413e9d257482d798a8890ceb3a72b2507e07cc8545b2379181bbd0c074a7fa1351d7f7161949accb17f9d5998c24a5eb5e8bbe1676e529b8f56fd5daa9e349312c7df2ffb7cce2bfb667dcb0032613cb6db50a4bd2f0f3c8f2ecb31681fe5b74a827a844cd67cdb242c07c66fbc4ad0b1fd63e5fdcfc1c044dfde6dd9367273caf9828503b485666731da7fc2e6ffe81b0b6ed62819a5c1273d4b85ee6f7b9ae8ee07fb60bfbffe75211ce73c79de3a9c16825bdda5b0fd124623cc30af18bc1bad5f94ebd5a090fc976b383ae698928f2e045f84ab4b931a6f67541e79ae27073d61dc477ef208fe2ccce2c9ea4f0123c52080309876569975eb7e56c1b09411c52ead314e4c1de29b9345637ef0b581b1471ee35ee487e13cb4bea3a21e1185395d0de41a2ec4c4377fde5f92ed09b36f524df1d7020d6cb595468872a96bb4cc271576dc4b27393f4aaf3848d96cccac801cb2e7ee9a1614ae70ac7d41b2ae56e87c9db5b3fd6dd77ae260d561edae50b0ab65b58d7d90027e86061b056feb9152e31eeb6cb649e69f7595ccd574e89cedf82bc5f887f70ae22f8aeb65d61ceaa6cfe89b4d49a7e995d0ba479aecd0029254205481a93606926cfa22e0f6f7a15efce48ee7cba38adaa17f0e29d3e5a294afb1d12cee1be6084034022f0f3c7465e19c6db357cc1f8a790608047d9d5f41524987e8bbba8fe54df01524d821763ca9a31edf2fc1bfe52d264f33236c2fb6a402a7ead903cbab5adea80832189efb82e9963544e5f69d0b8d9b28593c235e2444506ddc801a68a185f6e714b0e6b8d1b0d0482437a4bfa8b8be7b7689bdc1cdaca67f48a8e39698314ae56fa9e4b28ac1f5e5b2f3bb406492632c26c24c7e044100a10a921a12f18982c53654b5ce7d5f980e1bd70b86e5f11407a9f619be49cc1c421fe89feaaaff405cbc8576cdebd7a28595c00d52e4f5e0840bbe015d151ed47dd83b0fba314512d6189f31d228615007a43ae054d8f8fc61e35f0d526a188d891f8129522cccc923264827e87ea5c70d068326a8101d03fbe63fe62f6c3ac9123325b976a0ea1dcba8705a21dda56fe6a998c01c4a27f44cd4653be8b38dce24f3355cb7d16e6f9c846c83e8365cbbffa8be098ea7cec84298acaa99b617b82ca5fe9d5cfe1b180b2fb8714ea4a6e90ca2d5877e95919b435df2c72dc0ed2287ab2eccb578951764f96c8298d90af8bbfb0f6b46241e55aa157d9933ca7c09ba9f52dc44e9697239934b115f54cddf6d1a0ffcb87555a8d836b315270adab87c7acb80cb2e4bfdba2c57bf580ed4a8f5e66c7e743766cf6cc4b9e81523e0822d5c3cc823e57f87fa39b6eccfdb1137093625ecc38f556a4731c2cf3ee5ccb6ec459bcb52dbaa67ae7fe539792bcb05de83df1072f4e0f084dc80dcfdf467f408ca5b926a0216a55158c842a6161cc82c11d57e9605f7f15469075bf39f6afe6bd7b6dbb65503eaa5f453584adfb758ff2bf3b37236fba1e66df9056ca8b7cd35ef1cfaaec6ac2281164369655d8b53add4a21e59acb669145393607fa5ecf916a09cb4efe40c2861a0bf5aa0aa539fb4595f141a27e20d1d78e16670cb82220dfbfa87988d739c345597850d06937c5d4759c3c5810e3d8bbfa4f195e566098299a722d92056d803c94aaf46d2bc9d22ddf4b749df4f9b74495027ff969c95971bed544253a9b4a4b6ec68b7a6eb9b69f75f24cfcf64af4ec4ba9548cc9f0d292a314d91e1bc5bdf2d353eafd77e8e56a26fcdadcb07c2c22396fe63359dc6d3d9c78f2f6289373e9e93044aa03ae7ab05c7b61ae870cbddae8c2c2f460c5172684f182c1ecc5e76c4bedf0e180c410ac0bb597d6464815cbf0dbdd0f5cbd1c3ad01bdcfb1c3915e55433c3683a2a5ddffd308dcf39b1ef807479712bf00dda3e74b367216ceb9739e19bb9810bddcbc06813bd822d1de507cafd686d035f31e039ca004304fb47902120c61d921929c4bc163d5fb9a1c835179e5bb233e96c9f6ea0f8984902b9f83f2fc9fa103091ec00079f83c80990402744292fe88b4fec6306236c0a6e7b90fcdab13c915e70c58ff15a41b8c541986e091a24d36e43da15e41375a896cd40f0c8181e7c39234980fd7dafeb70621cb4801a79ff27b3cbe3e5105c3abf3704f2ff85b0eed29a5189680c3587435e6a29f8d0fb4aa8b339a8584781b004efefc871821159cb469f5ba5ba6efd5eccc7661d8d07cfd41b4845ebad79ca556cc0895f27464611c3d3283f24a788378dc048e9b3b5879a393f0a15262b11ea87f6a89279b98fd8fe9161b397bbcd87e99c19ae6d45657cafd3d68a33722e9c8cd56c3b554016a7ef26ab61581b9146765e102d9c878fcbeb0f6a574705595c05e27074e08d9b2fd88be8f329da3cc471f0783c911a8d7f633648df2bd6bcd0e97ddd776c8880124a321259b182a449074582143c531eb5df86ca9a7b37af5138413e1a0bea9245d3970357d64b61c54c63bfe78525a54f0e039def18a448d779753551ea4b8ad760b14dfc8472d7ab09e32cb62c3d04bd228ab975729850a6a5384df8c7382cbfbc56fc94ba0f33ab38e0bb7dd344c596c1c74be0d65966a2749cb5f018b21ab0a831527c63b98360430ab380e58dc58d4ec8cb8ab437f81e66905b5275775c1ea801b45dbc2b8bf083016f69ef86bd7531ae90af58241e066c7a714b310e29074d0dbd18ffa74ae88afe03552a0466e088498b390b9e30b2d1ed7a3f66637f590d8bb01bc35f71135174f3c34c9051ccd1ee075a456859c65960aaeb03b09dbb116f93efdf965342838a6a1a8acb5d298f47735209dd9d9dcf7cfa3e55e777d995239db9c910068cffecd6d8f5963e257f67805b31fe2831c0dfd676add4b76775b416cd3484f330d86a457dc7adabe1e502a8883be2d11e8eac55e771fc73e5294f172012f27dafbf7ee1285a5f7c4b772b2300d0883427a51bfe41baacfab30a675d71ee98d22dab7ed0d074ec525f247dc909d7ff237024e8d0c53c456fe6be1bb107677162811df3f0efa73ebfc8ecd01d74bafb68e08d61b04616bf50d63c1e3608e6415369ef96fffd332228ab5a282dd412b7533fb07e8ccc6d825a7d67d27d52c821463d578a3e6cb8aafbce73edbcdba1bab6ed51745a816bdc281ad31f6d03c350831edbcd7add98c8583248594c9439b2678bb269fb9b5a9f1b36664f10a1b43e365d78e34bb2ee3ce086a659a3bd74bc0449358f8f2750ff852505daef15670f4024d910b04324fcd1020becde5d915a892ae72c63c66cb1f310198b7ab9355127fe919aaedc54b8d8d0267edbedb5169cee64c13de718dd49758f384e2d3950f35093bb91d01c0cb957aedd8df117ebd22589fb0924929e67cb6cbb875ea0f829876933369b27ef359526226c2eaf8ed16b6168b4c79343aa19b44fe8d980b4e76b3b01853ad7fa922f9433b0b0d68aab40402e25735d2463449e5cf495730a7e429e4067b9e8ab60a13024307b397896864fe7ad7f7ab215ebce0694775639cece2c79456bde9ab21dacb78248ff95179895fd2aad04600f0a16b11bd7e89c851aa9b09335da52479b7ab6945c590cf32581578ab846329e3217a67b26f37c7581fbe9a54b2b165f4c1eed945fb7b20e87c8505347807126b293e5dd1b76f063174cbcc533cbe7d921c25972a0e949eacc49fea200d08ac743bee048f789961375675493c2f714a1b7c2721de4e53b5f003bf81c99eeafcbf033e5d6723a062e9bebae5843788694c1501e28dc721830e4309b64a3156a64bbb0e63974e62b5d29b1cf65366a76db0f2d68e5e94910571f101b4bce2849555d6fc437be529816075ba95ec942c02cfecc09dee5cf9a0cab74da3216c011efa668b0a9ed75dceea54d398e899b24c5998d14e839b4374343beef0e6ef82925cdbd962e3bb4917b94b66507bb928805061b8238a294856250c6cbd8d888e0b9d37b7c102488209a64cebc60778fdd864f3bab1d75963fb4fb092197cbce1ee3113d48005aa01237f5963a9e42d47eb9a10c0dcb91798107c305db2a67f53585cbcc715b24ae4f59d9b3eb14c3a26b8dd6e6e5e5c1c28d0d34264d99465b38d43e06e94cd2bf353d6973d347b1e43e63e2bc1e156d2daedac4dcdd060e8e1bc65d777b0d04f7c82d334a215299ad616d5a2f1b04ca819fc43f64b4aa4af56f40105b00a39795cff322fe4111289d5e536537274d47be5549ce560386fa610dab77fe4701bccc8453bb618057370edb138ac20304fd8ab488094f4a21cc328b2a4a40a2b034f14766c50e1120056ad6be12caf154180a25959550e198a23f2e93ae75847a3563953a82a218aa96b76bcad56865cf52eae4b16bc71e3dd4a133d1d66435f45c5f769ddaf0a879c819879dfc9d3a823d9bb3ec9afb1c6e7c1c683b5e454c9fe78b60cca5d959d56236dc8b863475af83b4ca7f4d21059b79662805426914bcfeefc4cc3aa4ec8f7d41e71870085ad5d02a11e4fcbe091d1c226279305cf23b3fb0f203b39cede49f081b935b96d112bda1b84472ad05552d0e149c379facf1b9e59a389acfd751c7813dc18ee7010dbbede0f2151675db1054b4e1a9971aec1394e419c11cbe3979dd217de15b01d1d8acd15cc06f1ea74c52e225b736de934baa72b575fa1808eb1ef3b2f2bb2326eab6d81de083c92788637793787226a721442944a83d11f96c6345315b2e61fe43aa995ea622a5e27b7f317a304aa0a8ee6e401495ea2b8945016aa7bd6bda231cb24c2e629c1162fd3bf8d4ec76bf62d336ed4c6734d813651d97afbcc1aa85b4a6e5b36838fec7f965713eb0041cc66aafb28d4be27a2c443a10e3bcdacce4b933675cc208f31c03d0f6e176375cb21357db59b0ccf1944e1e31360758994bea0fe0ef27940bdc3379ad1aa889c5586dc8caac6ef5929be91c76a69805ef035e764d884d9abd7f140dc271bd658fa672ff670cd5f7f7a67608603aad3776bd63e6f796cca3e9b30f875d67627de5502e14b6424628a85def5f8185d43f731e0b4f8a7f4f6fdb22ff4de733e04cb898cb1fddc37083173f66fae00dac3e43633120ca5601b07fe0ffeb8b1b6b3d7ebf49a96fecf193bb42eecdc51bec6cdaf5dc614ecbf2a001800e0e6541416da5cf762e4844f20ca0badc18019e4665a5fb4e92c49b6ea43230f1cce9801dd8e543f3f0e33fd0589ac36708d5f8fe0249366e7f12a245cdd93e0a36e1d1fd8844a9a3fae470833ab454d1ff8b5c7e9211f276096f8b26e52d2205de5de977d1a5a6c5ff412642e1e8283ada87cd5161b5dbff6a97bc1c72a6331a348191be443c0b97301423200926870bcafaf408ec4bbfd1d02cfca3ae0dc23377743c54f2ca68e99691568a126861ba250bd66d224d6cdcdd3c3ce2bf0aefaf65590216bd4dea32df515cfcc023a91956051cfced21ccc264b427b621fe8bc076b6dfafa4d8d081d0a1f852baeaca2b88f77c62bba46d2b6c868a811327bd5a7e583b63731d6c873447fef147e4b5a8467695d20007b14e2d05f176d6118b251d1ea017dca87c123ef09d23b504bc0dcd4c63358d1a5746ae66f30c7162c3a49fe16bceaac6e830c0b8037ee5514120816a506378d8416cb5b36bc929e162c5b7e2ad7fd661ba497c014fe30f5b2a80c4613b9ee32dda9beb4567af14509e674ed4d5de38c35bcc3c57353eb8e389642bdda3611e98963dafd115f3a67225c2cb48a2801c4313090d4b13d63a51caf499ca43959f76503caaaf38181238b65437307a4f786bfc7b4c1580af3393d258d75726bbb7335b8a15051b4a53ae1ecb8bcc39f2c3b669174bf200e9250d9cc35df11b65cc748ce01c6af71713c1f13905f439ca44164c7d9d840e5d559096b245571219ad5f86728b96119565a770202fffef179a152049972d5977fc316080a326f334f93e353df72dc780a7fb04daa27ae4157af950e775aceb4847c88d5ae3f044dfff08172d91b1e09d703ad6824b97ba4181b03b921ac4fb26746642275ca0242e6f7225fb21de775b1d00be994695e617f0316e345009c89ab44b19dac77485e5b1632bbb515555061b3f84e460f013516690fa8aad7f9ce60d457ddd9d1157dc6797c6549302b53868d6179ca1fefd62d2cc32a4b34c9c607006648e4eb21712f7a69ac044383f496559ed6dabcc04fa71d7e961daacb0dcc9eb50aae4c0942d6042a60710ac7babe7888f9a95661bd6e777ae384b8fa7bbc506764d873e4841e767435728abd6a94f83ce383fa26677c5511e08deac39e5a95e9c764cec03f02861ba372b6b0e5010dbb88e1dc09a35f0e11e2ea5a5ae3c8e17db363b010b2cc91d5c1991e31865d379fbb271f50cb4547e0b1cfc8fde3c4d0341dfe5e66e61aad52f555af48234e6cfda83f445eaae33eec06e39dbca3cad23400546c970f14a0b08b3516aaa32317554dadb796fdbb5e03710251ad9111315e4170c228ec4fc2f637770d7e630f828d8456001d5dca2602d0841a42117eb35c0a291a51050f51546f9c5fe2d1bd168ba164b</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">您好，这里需要密码。</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/blog/lib/hbe.js"></script><link href="/blog/css/hbe.style.css" rel="stylesheet" type="text/css">
      </section>

      
      
        <nav class="article-nav">
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2023/11/07/VUE%20%E9%9B%86%E6%88%90Variant%20Form/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">VUE 集成Variant Form</h2>
        </a>
      
      <div class="card-text--row">Newer</div>
    </div>
  </article>
</div>
          
          
            <div class="article-nav-item layout-padding">
  <article class="card-container article-nav-card content-padding--primary soft-size--large soft-style--box">
    
    <div class="card-text">
      
        <a href="/blog/2023/06/11/SQL%E6%9E%84%E5%BB%BA%E5%B7%A5%E5%85%B7/" itemprop="url">
          <h2 class="card-text--title text-ellipsis">SQL构建工具</h2>
        </a>
      
      <div class="card-text--row">Older</div>
    </div>
  </article>
</div>
          
        </nav>
      

      <section class="page-message-container layout-padding">
        


  
  

  
  


      </section>
    </div>
    <div class="widget-info">
      <section class="widget-author widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-body">
    
      <img src="/blog/icon.gif" class="soft-size--round soft-style--box" alt="QAQ">
    
    
      <h2>QAQ</h2>
    
    
      <p>贵在坚持</p>
    

    <div class="count-box">
      <div class="count-box--item">
        <svg class="icon icon-article" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M240.51564747 647.74217627h196.07203239c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806V165.10332731c0-33.18142087-30.16492806-60.32985613-60.32985612-60.32985611H245.04038668C225.43318342 104.7734712 210.35071939 119.85593522 210.35071939 139.46313845V617.57724821c0 16.59071043 13.57421762 30.16492806 30.16492808 30.16492806z m663.62841731-452.47392089v482.63884894c0 33.18142087-27.14843525 60.32985613-60.32985612 60.32985613H180.18579134c-33.18142087 0-60.32985613-27.14843525-60.32985612-60.32985613V195.26825538c-49.77213131 0-90.49478418 40.72265287-90.49478417 90.49478417v452.4739209c0 49.77213131 40.72265287 90.49478418 90.49478417 90.49478417h286.56681657c16.59071043 0 30.16492806 13.57421762 30.16492807 30.16492807s13.57421762 30.16492806 30.16492805 30.16492806h90.49478418c16.59071043 0 30.16492806-13.57421762 30.16492805-30.16492806s13.57421762-30.16492806 30.16492807-30.16492807h286.56681657c49.77213131 0 90.49478418-40.72265287 90.49478417-90.49478417V285.76303955c0-49.77213131-40.72265287-90.49478418-90.49478417-90.49478417zM587.41232014 647.74217627h191.54729318c19.60720323 0 34.68966726-15.08246403 34.68966729-34.68966727V134.93839925c0-16.59071043-13.57421762-30.16492806-30.16492808-30.16492805H617.57724821c-30.16492806 0-60.32985613 27.14843525-60.32985612 60.32985611v452.4739209c0 16.59071043 13.57421762 30.16492806 30.16492805 30.16492806z" fill="currentColor"></path>
</svg>
        <span>22</span>
      </div>
      <div class="count-box--item">
        <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
        0
      </div>
      <div class="count-box--item">
        <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
        8
      </div>
    </div>
  </div>
</section>

      

      
<section class="widet-notice widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-notice" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M512 945.02305225v28.15620663a24.27259221 24.27259221 0 0 1-24.27259221 24.27259335H394.0352a48.54518557 48.54518557 0 0 1-41.74885888-23.78714112l-110.68302222-184.47170332a132.04290333 132.04290333 0 0 1-17.47626667-48.54518557h118.4502511a200.97706667 200.97706667 0 0 1 76.21594113 14.56355556l20.38897777 133.49925888a48.54518557 48.54518557 0 0 0 36.40888888 27.67075555l16.01991111 2.91271112a24.27259221 24.27259221 0 0 1 20.38897778 25.72894889zM997.45185223 463.45481443a194.18074112 194.18074112 0 0 1-38.8361489 116.50844445 24.75804445 24.75804445 0 0 1-36.4088889 0l-34.95253333-34.95253333a24.27259221 24.27259221 0 0 1-2.91271111-30.58346667 97.09036999 97.09036999 0 0 0 0-106.79940665 24.27259221 24.27259221 0 0 1 2.91271111-30.58346666l34.95253333-34.95253334a24.75804445 24.75804445 0 0 1 18.93262223-7.28177777 26.2144 26.2144 0 0 1 17.47626667 9.70903665A194.18074112 194.18074112 0 0 1 997.45185223 463.45481443z m-194.18074112-388.36148111v776.72296335a48.54518557 48.54518557 0 0 1-48.54518556 48.54518443h-28.64165888a48.54518557 48.54518557 0 0 1-33.98163001-14.07810332l-145.63555556-143.20829668A291.27111111 291.27111111 0 0 0 342.57730333 657.63555556H172.18370333a145.63555556 145.63555556 0 0 1-145.63555556-145.63555556v-97.09036999a145.63555556 145.63555556 0 0 1 145.63555556-145.63555556h170.3936a291.27111111 291.27111111 0 0 0 206.31703779-85.43952668l145.63555555-143.20829554a48.54518557 48.54518557 0 0 1 33.98162888-14.07810446H754.72592555a48.54518557 48.54518557 0 0 1 48.54518556 48.54518555z" fill="currentColor"></path>
</svg>
    <span>NOTICE</span>
  </div>
  <div class="widget-body">
    <p>flex-block主题部分重构，详情查看https://github.com/miiiku/flex-block</p>
  </div>
</section>


      <section class="widget-categorys widget-item layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-categories" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M900.3614811 257.09082106h-339.81629553l-67.96326003-101.9448889c-19.41807444-29.12711113-48.54518557-43.69066667-82.52681443-43.69066667H123.6385189c-53.39970333 0-97.09036999 43.69066667-97.09037113 97.09036999v582.54222222c0 53.39970333 43.69066667 97.09036999 97.09037113 97.09037002h776.7229622c53.39970333 0 97.09036999-43.69066667 97.09037113-97.09037002V354.18119104c0-53.39970333-43.69066667-97.09036999-97.09037113-97.09036998z m-97.09036999 242.72592554H220.72888889c-24.27259221 0-48.54518557-24.27259221-48.54518556-48.54518556s24.27259221-48.54518557 48.54518556-48.54518444h582.54222222c24.27259221 0 48.54518557 24.27259221 48.54518556 48.54518444s-24.27259221 48.54518557-48.54518556 48.54518556z" fill="currentColor"></path>
</svg>
    <span>CATEGORYS</span>
  </div>
  <div class="widget-body">
    <ul class="categorys-list">
      
    </ul>
  </div>
</section>

      <section class="widget-tags widget-item  layout-margin content-padding--primary soft-size--large soft-style--box">
  <div class="widget-title">
    <svg class="icon icon-tags" viewBox="0 0 1098 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M283.42180005 272q0-28.38857157-20.09142843-48.48000001t-48.47999998-20.09142842-48.48000002 20.09142842-20.09142846 48.48000001 20.09142846 48.48 48.48000002 20.09142843 48.47999998-20.09142843 20.09142843-48.48zM855.0332285 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.03999997 263.58857157q-20.9142853 19.81714313-48.75428534 19.81714312-28.38857157 0-48.20571468-19.81714312l-383.04-383.58857157q-20.36571468-19.81714313-34.55999999-54.10285688t-14.19428534-62.6742853l0-222.85714313q0-27.84000002 20.36571469-48.20571469t48.2057147-20.36571466l222.85714313 0q28.38857157 0 62.6742853 14.19428529t54.65142842 34.55999999l383.04000001 382.49142843q19.81714313 20.9142853 19.81714314 48.75428532zM1060.74751475 580.57142843q0 28.38857157-19.81714313 48.2057147l-263.04 263.58857157q-20.9142853 19.81714313-48.75428531 19.81714312-19.26857155 0-31.61142843-7.47428531t-28.38857159-24.13714314l251.79428534-251.7942853q19.81714313-19.81714313 19.81714308-48.20571469 0-27.84000002-19.81714308-48.75428531l-383.04000001-382.49142845q-20.36571468-20.36571468-54.65142842-34.55999999t-62.67428532-14.19428534l120 0q28.38857157 0 62.67428532 14.19428534t54.65142842 34.55999999l383.03999998 382.49142845q19.81714313 20.9142853 19.81714314 48.75428531z" fill="currentColor"></path>
</svg>
    <span>TAGS</span>
  </div>
  <div class="widget-body">
    <div class="tags-cloud">
      <a href="/blog/tags/Activiti/" style="font-size: 13.33px;" class="tags-cloud-3">Activiti</a> <a href="/blog/tags/Nginx/" style="font-size: 10px;" class="tags-cloud-0">Nginx</a> <a href="/blog/tags/PG%E6%95%B0%E6%8D%AE%E5%BA%93/" style="font-size: 13.33px;" class="tags-cloud-3">PG数据库</a> <a href="/blog/tags/goView/" style="font-size: 13.33px;" class="tags-cloud-3">goView</a> <a href="/blog/tags/java/" style="font-size: 20px;" class="tags-cloud-10">java</a> <a href="/blog/tags/vue/" style="font-size: 16.67px;" class="tags-cloud-7">vue</a> <a href="/blog/tags/%E5%AF%BC%E5%87%BAExcel/" style="font-size: 16.67px;" class="tags-cloud-7">导出Excel</a> <a href="/blog/tags/%E6%8A%A5%E9%94%99/" style="font-size: 10px;" class="tags-cloud-0">报错</a>
    </div>
  </div>
</section>
    </div>
  </article>
</div>

    <!-- footer container -->
<footer id="footer" class="footer">
  <div class="footer-container">
    
    <div class="social-icons">
      
        
      
        
      
        
      
        
          <a href="https://github.com/miiiku/" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-github" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M64.6 512c0 195.6 125.4 361.9 300.1 422.9 23.5 5.9 19.9-10.8 19.9-22.2v-77.6c-135.8 15.9-141.3-74-150.5-89-18.5-31.5-61.9-39.5-49-54.5 31-15.9 62.5 4 98.9 58 26.4 39.1 77.9 32.5 104.1 26 5.7-23.5 17.9-44.5 34.7-60.9-140.7-25.2-199.4-111.1-199.4-213.3 0-49.5 16.4-95.1 48.4-131.8-20.4-60.6 1.9-112.4 4.9-120.1 58.2-5.2 118.5 41.6 123.3 45.3 33.1-8.9 70.8-13.7 112.9-13.7 42.4 0 80.3 4.9 113.5 13.9 11.3-8.6 67.3-48.8 121.4-43.9 2.9 7.7 24.7 58.3 5.5 118.1 32.5 36.8 49 82.8 49 132.4 0 102.3-59 188.3-200.2 213.2 23.5 23.3 38.1 55.5 38.1 91.1v112.7c0.8 9 0 17.9 15.1 17.9C832.7 877 960.4 709.4 960.4 512.1c0-247.5-200.6-447.9-447.9-447.9C265 64.1 64.6 264.5 64.6 512z"></path>
</svg>
          </a>
        
      
        
          <a href="https://twitter.com/guanquanhong" class="soft-size--primary soft-style--box" target="_blank" rel="noopener noreferrer">
            <svg class="icon icon-twitter" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  <path d="M962.285714 233.142857q-38.285714 56-92.571429 95.428571 0.571429 8 0.571429 24 0 74.285714-21.714286 148.285714t-66 142-105.428571 120.285714-147.428571 83.428571-184.571429 31.142857q-154.857143 0-283.428571-82.857143 20 2.285714 44.571429 2.285714 128.571429 0 229.142857-78.857143-60-1.142857-107.428571-36.857143t-65.142857-91.142857q18.857143 2.857143 34.857143 2.857143 24.571429 0 48.571429-6.285714-64-13.142857-106-63.714286t-42-117.428571l0-2.285714q38.857143 21.714286 83.428571 23.428571-37.714286-25.142857-60-65.714286t-22.285714-88q0-50.285714 25.142857-93.142857 69.142857 85.142857 168.285714 136.285714t212.285714 56.857143q-4.571429-21.714286-4.571429-42.285714 0-76.571429 54-130.571429t130.571429-54q80 0 134.857143 58.285714 62.285714-12 117.142857-44.571429-21.142857 65.714286-81.142857 101.714286 53.142857-5.714286 106.285714-28.571429z"></path>
</svg>
          </a>
        
      
    </div>
     
    <p>&copy; 2024 <a href="/" target="_blank">QAQ</a></p>

    

    <p>Powered by <a href="https://hexo.io" target="_blank" rel="noopener noreferrer">Hexo</a> Theme - <a href="https://github.com/miiiku/flex-block" target="_blank" rel="noopener noreferrer author">flex-block</a></p>

    <p>
      <a href="javascript:;" id="theme-light">🌞 浅色</a>
      <a href="javascript:;" id="theme-dark">🌛 深色</a>
      <a href="javascript:;" id="theme-auto">🤖️ 自动</a>
    </p>
  </div>
</footer>
  </div>

  <div class="back-to-top-fixed soft-size--round soft-style--box">
    <svg class="icon icon-back-to-top" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
      <path d="M725.333333 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8l-213.333333-213.333333c-17.066667-17.066667-17.066667-42.666667 0-59.733333s42.666667-17.066667 59.733333 0l213.333333 213.333333c17.066667 17.066667 17.066667 42.666667 0 59.733333C746.666667 422.4 738.133333 426.666667 725.333333 426.666667z"></path>
      <path d="M298.666667 426.666667c-12.8 0-21.333333-4.266667-29.866667-12.8-17.066667-17.066667-17.066667-42.666667 0-59.733333l213.333333-213.333333c17.066667-17.066667 42.666667-17.066667 59.733333 0s17.066667 42.666667 0 59.733333l-213.333333 213.333333C320 422.4 311.466667 426.666667 298.666667 426.666667z"></path>
      <path d="M512 896c-25.6 0-42.666667-17.066667-42.666667-42.666667L469.333333 170.666667c0-25.6 17.066667-42.666667 42.666667-42.666667s42.666667 17.066667 42.666667 42.666667l0 682.666667C554.666667 878.933333 537.6 896 512 896z"></path>
    </svg>
  </div>

  
  <!-- aplayer -->


<!-- dplayer -->


<!-- copy button  -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script>

<!-- https://clipboardjs.com/ -->


<script type="text/javascript">
	(function () {
		function getCodeType (elem) {
			const classs = Array.from(elem.classList.values());
			if (classs && classs.length > 1) {
				return classs[1];
			}
			return "plain";
		}

		window.addEventListener("DOMContentLoaded", () => {
			const copyBtnClass = "copy-btn";
			//  instantiate clipboardjs 
			const clipboard = new ClipboardJS('.' + copyBtnClass);

			clipboard.on('success', function (e) {
				console.info('Action:', e.action);
				console.info('Text:', e.text);
				console.info('Trigger:', e.trigger);
				if (e.trigger) {
					e.trigger.classList.add("copied");
					setTimeout(() => {
						e.trigger.classList.remove("copied");
					}, 3000);
				}
				e.clearSelection();
			});

			clipboard.on('error', function (e) {
				console.error('Action:', e.action);
				console.error('Trigger:', e.trigger);
			});

			document.querySelectorAll('figure.highlight').forEach((elem) => {
				const codeContent = elem.querySelector("td.code");
				const copyButton = document.createElement('button');
				copyButton.setAttribute("class", copyBtnClass);
				copyButton.setAttribute("title", "Copy Code");
				copyButton.setAttribute("data-clipboard-text", codeContent.innerText);
				elem.insertBefore(copyButton, elem.children[0]);
			});
		})
	})();
</script>








  


  


  




<script src="/blog/js/script.js"></script>


  
  <!-- 尾部用户自定义相关内容 -->
</body>
</html>
